package blbetter.netze;

import neuralNetworks.Functions;
import blbetter.db.BLDataBase;
import blbetter.db.Spiel;

public class BlBetterNetV2 extends BlBetterNet {

	private static final long serialVersionUID = -6938403927160069131L;

	private int X, Y;

	public BlBetterNetV2(int X, int Y, int[] hiddenNeurons, Functions actF,
			double lr) {
		super(hiddenNeurons, actF, lr);
		this.X = X;
		this.Y = Y;
	}

	@Override
	protected int getAnzInputNeurons() {
		// input infos
		// punktedurchs. differenz der letzten X Spiele der teams (0-3)-> 1
		// neuron
		// punktedurchs. differenz der letzten Y Spiele ab X der teams (0-3)-> 1
		// neuron
		// durchs. geschoss. Tore letzte X Spiele (beide Teams)(0-3)-> 2*1=2
		// neuronen
		// durchs. geschoss. Tore letzte Y ab X Spiele (beide Teams)(0-3)->
		// 2*1=2
		// neuronen
		// tordurchs. gekriegt. Tore letzte X Spiele (beide Teams)(0-3)-> 2*1=2
		// neuronen
		// tordurchs. gekriegt. Tore letzte Y ab X Spiele (beide Teams)(0-3)->
		// 2*1=2
		// neuronen
		// spieltag (19-34) -> 4 neuronen
		// tabellenplaetze (1-18) -> 2*1=2 neuronen
		// -----------------------
		// insgesamt: 16 neuronen

		return 16;
	}

	@Override
	public BlBetterInputSit getInputSit(Spiel spiel, BLDataBase db) {
		return new BlBetterInputSitV2(spiel, X, Y, db);
	}

}
